- 软件要求: Oracle 12c 的资料库备份可以在下列平台上进行:Windows Server 2008/ 2008 R2/ 2012/ 2012 R2/ 2016.
- %edition_name% 安装: Oracle 资料库伺服器上必须安装最新版本的 %edition_name% 。
- Oracle 资料库伺服器扩充模组: 请确保%edition_name%用户账号已经开启了 Oracle 资料库伺服器扩充模组。
- 备份配额要求: 请确保%edition_name%用户账号拥有分配足够的存储配额用以容納Oracle资料库备份集的存储容量和保留政策。
- 实时备份模组: 如果需要开启实时备份功能,请确保已经开启了实时备份扩充模组。例如:你可以对你的Oracle实例进行每半小时或每小时一次的存档日志实时备份。
- Java heap大小: %edition_name% 的默认Java heap大小设置为2048MB。对于Oracle资料库备份,强烈建议您将Java heap大小设置提升为至少 4096MB 以达至更佳的备份及还原性能。实际的Java heap大小取决于Oracle伺服器上之可用记忆体空间。
- 暂存资料夹: %edition_name% 上的暂存资料夹用作储存存档日志备份及备份过程中所产生之增量或差异档案。为达至最佳备份/还原性能,建议暂存资料夹位于本地磁碟机並且有大量空白磁碟空间。
磁碟空间计算公式如下:
(总资料库大小 * 差异率) * 备份目标储存位置数目 = 最大所需磁碟空间
例如: 由于默认差异率为50%,如果 Oracle 资料库大小为1TB並且只有一个备份目标储存位置,那么暂存资料夹所需磁碟空间为500GB。
- 主机名: 为确保支援还原至原始位置,请在建立Oracle 备份集时输入 127.0.0.1 作为主机名。
- Oracle內部流程检查: 为使得Oracle实例执行流畅,请确保Oracle实例內部流程工作正常,例如:DBWO (Database Writer), LGWR (Log Writer), MMAN (Memory Manager Process), PMON (Process Monitor), PSPO (Process Spawner Process), SMON (System Monitor), CKPT (Checkpoint process (thread on Windows) that runs by default on Windows), ARCO (Archive Process (or thread on Windows)), RECO (Distributed Recovery Background Process).
SQL> select name, description from v$bgprocess where PADDR <>'00';
NAME     DESCRIPTION
-----   ---------------------------------------
PMON     process cleanup
VKTM     Virtual Keeper of TiMe process
GEN0     generic0
DIAG     diagnosibility process
DBRM     DataBase Resource Manager
VKRM     Virtual sKeduler for Resource Manager
PSP0     process spawner 0
DIA0     diagnosibility process 0
MMAN     Memory Manager
DBW0     db writer process 0
TMON     Transport Monitor
ARC0     Archival Process 0
ARC1     Archival Process 1
ARC2     Archival Process 2
ARC3     Archival Process 3
LGWR     Redo etc.
CKPT     checkpoint
SMON     System Monitor Process
SMCO     Space Manager Process
RECO     distributed recovery
LREG     Listener Registration
CJQ0     Job Queue Coordinator
AQPC     AQ Process Coord
MMON     Manageability Monitor Process
MMNL     Manageability Monitor Process 2
- Oracle资料库伺服器支援版本: 请确保%edition_name%支援Oracle资料库伺服器版本。
SQL> select * from v$version;
Banner
---------------------------------------------------------
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
PL/SQL Release 12.1.0.1.0 - Production
CORE 12.1.0.1.0 Production
TNS for 64-bit Windows: Version 12.1.0.1.0 - Production
NLSRTL Version 12.1.0.1.0 – Production
- 系统标识符(SID): 通过下列方法查询SID:
- SQL command
SQL > select instance from v$thread;
INSTANCE
--------------------------------------
Orcl12c
或者
- 在D:\app\oracle\admin路径下的init.ora文档 ,寻找下列句子:
###########################################
# Database Identification
###########################################
db_domain=""
db_name="orcl12c"
- Oracle_home 路径: 通过下列方法查询Oracle_home 路径:
- SQL command
SQL > SELECT file_spec FROM DBA_LIBRARIES WHERE library_name = 'DBMS_SUMADV_LIB';
FILE_SPEC
-----------------------------------------------
D:\app\oracle\product\12.1.0\dbhome_1\bin\oraqsmashr.dll
所以Oracle_home路径为 D:\app\oracle。
或者
- 在D:\app\oracle\admin路径下的init.ora 文档,寻找下列句子:
###########################################
# File Configuration
###########################################
control_files=("D:\app\oracle\oradata\orcl12c\control01.ctl", "D:\app\oracle\recovery_area\orcl12c\control02.ctl")
db_recovery_file_dest="D:\app\oracle\recovery_area"
db_recovery_file_dest_size=6930m
所以Oracle_home路径为 D:\app\oracle。
!
请注意init.ora文档中的oracle_home 路径与通过SQL指令获得的路径必须一致。如果不一致,请联系Oracle资料库管理员寻求支援。
- Oracle连接埠号码: 采用 netstat 和 tnsping 以找出连接埠号码。Oracle默认连接埠号码为1521。
- NETSTAT
C:\Users\Administrator>netstat -a|more
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:135 w12x-5-43:0 LISTENING
TCP 0.0.0.0:445 w12x-5-43:0 LISTENING
TCP 0.0.0.0:1521 w12x-5-43:0 LISTENING
TCP 0.0.0.0:3389 w12x-5-43:0 LISTENING
TCP 10.16.10.81:139 w12x-5-43:0 LISTENING
TCP 10.16.10.81:1521 w12x-5-43:56851 ESTABLISHED
TCP 10.16.10.81:2030 w12x-5-43:0 LISTENING
TCP [::]:135 w12x-5-43:0 LISTENING
TCP [::]:445 w12x-5-43:0 LISTENING
TCP [::]:1521 w12x-5-43:0 LISTENING
TCP [::]:3389 w12x-5-43:0 LISTENING
TCP [fe80::4d71:5f81:58b0:552c%16]:2030 w12x-5-43:0 LISTENING
TCP [fe80::713e:e2d4:8e82:5f77%17]:1521 w12x-5-43:56760 ESTABLISHED
TCP [fe80::713e:e2d4:8e82:5f77%17]:2030 w12x-5-43:0 LISTENING
TCP [fe80::713e:e2d4:8e82:5f77%17]:56760 w12x-5-43:1521 ESTABLISHED
- TNSPING
C:\Users\Administrator>tnsping 127.0.0.1
TNS Ping Utility for 64-bit Windows: Version 12.1.0.1.0 - Production on 19-DEC-2017 15:38:56
Copyright (c) 1997, 2013, Oracle. All rights reserved.
Used parameter files:
D:\app\oracle\product\12.1.0\dbhome_1\network\admin\sqlnet.ora
Used EZCONNECT adapter to resolve the alias
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))
OK (0 msec)
- Windows VSS Writer: 请确保Oracle资料库伺服器上安装Windows VSS Writer並且Writer状态为Stable。可以通过执行vssadmin list writers 指令来验证。
C:\Users\Administrator>vssadmin list writers
vssadmin 1.1 - Volume Shadow Copy Service administrative command-line tool
(C) Copyright 2001-2012 Microsoft Corp.
Writer name: 'Task Scheduler Writer'
Writer Id: {d61d61c8-d73a-4eee-8cdd-f6f9786b7124}
Writer Instance Id: {1bddd48e-5052-49db-9b07-b96f96727e6b}
State: [1] Stable
Last error: No error
Writer name: 'VSS Metadata Store Writer'
Writer Id: {75dfb225-e2e4-4d39-9ac9-ffaff65ddf06}
Writer Instance Id: {088e7a7d-09a8-4cc6-a609-ad90e75ddc93}
State: [1] Stable
Last error: No error
Writer name: 'Performance Counters Writer'
Writer Id: {0bada1de-01a9-4625-8278-69e735f39dd2}
Writer Instance Id: {f0086dda-9efc-47c5-8eb6-a944c3d09381}
State: [1] Stable
Last error: No error
Writer name: 'System Writer'
Writer Id: {e8132975-6f93-4464-a53e-1050253ae220}
Writer Instance Id: {635755cd-b461-426c-89d1-95682a185005}
State: [1] Stable
Last error: No error
Writer name: 'ASR Writer'
Writer Id: {be000cbe-11fe-4426-9c58-531aa6355fc4}
Writer Instance Id: {b01dbf5b-b437-48ca-882f-c7ec08ef0a50}
State: [1] Stable
Last error: No error
Writer name: 'COM+ REGDB Writer'
Writer Id: {542da469-d3e1-473c-9f4f-7847f01fc64f}
Writer Instance Id: {8fdde399-1d13-40e7-97c5-595bbf52b291}
State: [1] Stable
Last error: No error
Writer name: 'BITS Writer'
Writer Id: {4969d978-be47-48b0-b100-f328f07ac1e0}
Writer Instance Id: {7993a1e2-e51d-461f-b6f9-e64c93fad1ae}
State: [1] Stable
Last error: No error
Writer name: 'WMI Writer'
Writer Id: {a6ad56c2-b509-4e6c-bb19-49d8f43532f0}
Writer Instance Id: {792c367d-1e21-4644-a63a-7d8ee4e2aaac}
State: [1] Stable
Last error: No error
Writer name: 'Shadow Copy Optimization Writer'
Writer Id: {4dc3bdd4-ab48-4d07-adb0-3bee2926fd7f}
Writer Instance Id: {82fd1722-afcd-4f8e-95fd-8e5a2111c84c}
State: [1] Stable
Last error: No error
Writer name: 'Registry Writer'
Writer Id: {afbab4a2-367d-4d15-a586-71dbb18f8485}
Writer Instance Id: {723e8efc-3758-40c4-aaeb-88a4f43702d3}
State: [1] Stable
Last error: No error
- TNS Listener: 请确保开启TNS listener以允许连结到Oracle。使用下列指令查询TNS listener是否已开启:
C:\Users\Administrator>lsnrctl status
LSNRCTL for 64-bit Windows: Version 12.1.0.1.0 - Production on 06-MAR-2018 10:46:34
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias        LISTENER
Version      TNSLSNR for 64-bit Windows: Version 12.1.0.1.0 - Production
Start Date   26-FEB-2018 15:20:48
Uptime       7 days 19 hr. 25 min. 46 sec
Trace Level   off
Security     ON: Local OS Authentication
SNMP         OFF
Listener Parameter File     D:\app\oracle\product\12.1.0\dbhome_1\network\admin\listener.ora
Listener Log File     D:\app\oracle\diag\tnslsnr\w12x-5-43\listener\alert\log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=w12x-5-43)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=w12x-5-43)(PORT=5500))(Security=(my_wallet_directory=D:\APP\ORACLE\admin\orcl12c\xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "orcl12c" has 1 instance(s).
Instance "orcl12c", status READY, has 1 handler(s) for this service...
Service "orcl12cXDB" has 1 instance(s).
Instance "orcl12c", status READY, has 1 handler(s) for this service...
Service "pdborcl12c" has 1 instance(s).
Instance "orcl12c", status READY, has 1 handler(s) for this service...
The command completed successfully
如果未开启,使用下列指令开启TNS listener:
C:\Users\Administrator>lsnrctl start
LSNRCTL for 64-bit Windows: Version 12.1.0.1.0 - Production on 19-DEC-2017 16:34:33
Copyright (c) 1991, 2013, Oracle. All rights reserved.
TNS-01106: Listener using listener name LISTENER has already been started
ARCHIVELOG模式及资料库状态
- 资料库实例必须为ARCHIVELOG模式。
SQL > archive log list;
Database log mode Archive Mode
Automatic archival Enables
- 资料库状态必须为open。
SQL > select instance_name, status form v$instance;
INSTANCE_NAME     STATUS
-------------     ----------
Orcl12c           OPEN
- Java 安装: Oracle资料库上必须安装Java。
SQL > select comp_name, status from dba_registry;
COMP_NAME                               STATUS
---------                               ------------
OWB                                     VALID
Oracle Application Express               VALID
Oracle Enterprise Manager               VALID
OLAP Catalog                             VALID
Spatial                                 VALID
Oracle Multimedia                       VALID
Oracle XML Database                     VALID
Oracle Text                             VALID
Oracle Expression Filter                 VALID
Oracle Rules Manager                     VALID
Oracle Workspace Manager                 VALID
Oracle Database Catalog Views           VALID
Oracle Database Packages and Types       VALID
JServer JAVA Virtual Machine             VALID
Oracle XDK                               VALID
Oracle Database Java Package             VALID
- 用于认证备份/还原之Oracle登录账号: 应用Oracle system 账户以连结Oracle。
- 使用下列指令查询账户是否具有JavaSysPriv认证:
SQL> select * from DBA_ROLE_PRIVS where upper(grantee)='SYSTEM';
GRANTEE   GRANTED_ROLE           ADM   DEF   COM
-------   ------------           ---   ---   ---
SYSTEM   JAVASYSPRIV             NO     YES   NO
SYSTEM   AQ_ADMINISTRATOR_ROLE   YES   YES   YES
如果未有认证,授予system账户javasyspriv认证:
SQL> grant javasyspriv to system;
- 使用下列指令查询账户是否具有sysdba认证:
SQL> select * from v$pwfile_users where sysdba='TRUE';
USERNAME SYSDB SYSOP SYSAS SYSBA SYSDG SYSKM CON_ID
-------- ----- ----- ----- ----- ----- ----- ------
SYS       TRUE TRUE FALSE FALSE FALSE FALSE     0
SYSTEM   TRUE FALSE FALSE FALSE FALSE FALSE     1
如果未有认证,授予system账户sysdba认证:
SQL> grant sysdba to system;
- Oracle资料库磁碟机: Oracle资料库磁碟机必须使用可以支援VSS快照的文档系统,例如NTFS,因为%edition_name% v7 应用VSS快照进行Oracle资料库备份。
- Windows用户账号许可: Windows用户账号必须属于下列安全组。
- ora_dba
- ORA_OraDB12Home1_STSBACKUP
- ORA_OraDB12Home1_SYSDG
- ORA_OraDB12Home1_SYSKM
- Oracle资料库相关的Windows服务: 请确保已经开始全部Oracle资料库相关的Windows服务。
- OracleJobSchedulerORCL12C
- OracleOraDB12Home1MTSRecoveryService
- OracleOraDB12Home1TNSListener
- OracleRemExecServiceV2
- OracleServiceORCL12C